<?php
namespace common\modules\rbac\backend\models\searchs;

use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;

/**
 * AssignmentSearch represents the model behind the search form about Assignment.
 *
 * @author Xuegui Yuan <yuanxuegui@163.com>
 */
class AssignmentSearch extends Model
{

    public $id;

    public $username;

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [
                [
                    'id',
                    'username'
                ],
                'safe'
            ]
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => Yii::t('backend', 'ID'),
            'username' => Yii::t('backend', 'Username'),
            'name' => Yii::t('backend', 'Name')
        ];
    }

    /**
     * Create data provider for Assignment model.
     * 
     * @param array $params            
     * @param \yii\db\ActiveRecord $class            
     * @param string $usernameField            
     * @return \yii\data\ActiveDataProvider
     */
    public function search($params, $class, $usernameField)
    {
        $query = $class::find();
        $dataProvider = new ActiveDataProvider([
            'query' => $query
        ]);
        
        if (! ($this->load($params) && $this->validate())) {
            return $dataProvider;
        }
        
        $query->andFilterWhere([
            'like',
            $usernameField,
            $this->username
        ]);
        
        return $dataProvider;
    }
}
